深度学习在单声道录音中的说话人角色识别优化实践
说话人角色识别(后通称角色识别)是智能语音分析平台的一个重要组成部分,用来判断通话双方的身份(坐席 or 客户),具体如下图所示。智能语音分析平台接收原始的通话录音,然后进入说话人分离和语音识别模块,将两个不同说话人的音频切分开,并将语音转写为对应的文本。之后进入角色识别模块,对两个说话人的身份进行判断,然后再进行下游任务的处理。本文通过说话人性别先验、关键词匹配、基于 TextCNN 文本分类,相比原始第三方语音识别中的角色识别准确率提升了 6%。
在各个业务线逐步接入智能语音分析平台的过程中,业务方同学使用后发现有部分通话的角色分配是错误的,标记为坐席的语音听了之后发现是客户说的,标记为客户的语音听了之后发现是坐席说的,这部分角色错误的语音带来了不好的用户体验。目前语音识别系统采购自第三方平台,对于公司业务场景下的单声道录音,角色识别的准确率不够高。因此,需要对角色识别的准确率进行提升,提高用户体验和部分下游标签的准确率。
方法总述
1. 性别识别
在进行角色识别时,我们首先考虑从音频的角度进行优化。通过通话双方的性别对录音进行分类,可以分为同性通话,和异性通话(男性坐席女性客户 or 女性坐席男性客户)。如果能够很高的准确率识别出说话人的性别,然后结合数据库查询本次通话坐席的性别,就可以解决这部分异性通话的角色分配问题。通过调研和尝试,训练了性别识别模型,对于音频性别识别的准确率可以达到 93.16%。
性别识别模型采用的 VGGish + Bi-LSTM + Attention,模型的输入是语音波形数据,对音频波形数据提取FBank特征,再使用FBank特征作为 VGGish 模型的输入,得到一个 128 维的embedding,然后经过 Bi-LSTM + Attention 进行预测,判断说话人性别。
因此,在实际应用性别识别的预测结果时,采用了以下规则:
1)仅当性别识别模型的预测概率 >0.99 时,才采用该单句的性别预测结果
2)若性别模型判断某个通话双方为异性,只有当两个性别的发言数量都大于 1 时,才使用此次性别识别的结果。
通过对坐席和客户的发言内容进行分析,我们发现坐席和客户的发言内容会有较大的区别,例如坐席的发言内容包含了大量公司的业务信息,客户的发言内容偏向于较短的应答。因此,角色识别的初步方案是根据通话双方发言的文本内容,来确定两者的角色。
通过对大量角色分配错误的语音进行分析发现,人为能够感觉到语音的角色分配错误的原因在于"大量单句的角色被分错"。例如,当说话人 a 的大量单句都是客户的发言内容,说话人 b 的大量单句都是坐席的发言内容,那么说话人 a 被判定为客户,说话人 b 被判定为坐席,就是合适的。此时如果将说话人 a 判定为坐席,说话人 b 判断为客户,就会被认为语音角色分配错误。
初步角色分配策略从常用关键词,句子语义两种角度来决定两个发言集合中每一句单句角色的归属,然后计算每个发言集合属于坐席和客户的各自得分,该得分即该说话人属于坐席和客户的各自可能性,再通过角色分配策略来对说话人 a 和说话人 b 的角色进行分配。提取关键词采用的 nGram 关键词提取策略,提取句子语义采用的是 TextCNN 模型。(由于初步角色分配和单句角色纠正都是使用的这两种具体策略,只是用法不同,因此介绍在单句角色纠正之后,再具体介绍这两种策略)
3.单句角色纠正
公司的通话录音主要有呼叫中心和电话平台两个来源,其中大部分是来自呼叫中心的单声道录音。对于双声道的录音,主叫方和被叫方在不同的声道内,无需进行说话人分离,可直接进行语音识别,然后进行下游任务的处理。对于单声道的录音,主叫方和被叫方在同一个声道内,因此无法直接确定每一句话的归属。需要使用说话人分离对音频进行断句,然后将断句后的音频片段聚成两类,分别属于两个不同的说话人A和B,因此说话人分离的效果会直接影响到角色识别的准确率。
初步角色识别,即根据 A 和 B 的所有说话内容,判别 A 和 B 的角色。由于说话人分离结果存在错误,即说话人 A 中包含 B 的单句,说话人B 中包含属于 A 的单句。因此,即使角色识别模块将说话人 A 和 B 的角色分配正确,整体的单句角色准确率依然不高。通过对通话录音进行全量抽样,我们发现两个不同说话人的发言被聚类为同一个人的情况,并不少见。因此,我们引入了单句角色纠正这个环节,对部分带有明显角色倾向的单句进行纠正。单句纠正策略有两种,从关键词和语义两个角度判断该单句的角色。提取关键词采用的 nGram 提取策略,句子语义采用的是 TextCNN 模型。
TextCNN 模型
首先将每一句单句的文本转成 embedding,然后经过 TextCNN 进行角色分类,如果 TextCNN 模型以大于某阈值的概率预测为某个角色(坐席 or 客户),则将模型的预测角色确定为该单句的最终角色。由于单句角色纠正策略的功能是在初步角色分配的基础上提升准确率,因此需要保证单句角色纠正策略的高准确率。因此在模型预测时,加上了概率阈值的限制。当预测阈值设置为 0.998 时,TextCNN 的准确率为 89.93%。
总结
【作者介绍】
AI Lab部门介绍
58同城TEG技术工程平台群AI Lab,旨在推动AI技术在58生活服务行业的落地,打造AI中台能力,以提高前台业务的人效和用户体验。AI Lab目前负责的产品包括:智能客服、语音机器人、智能写稿、AI算法平台、智能语音分析平台、语音识别引擎等,未来将持续加速创新,拓展AI应用。
欢迎加入58 AI Lab技术交流社区
团队照片